package com.ying.service;

import com.ying.entity.SysMenuEntity;
import com.ying.repository.SysMenuRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class SysMenuService {
	@Autowired
	private SysMenuRepository sysMenuRepository;
	@Autowired
	private SysUserService sysUserService;
	@Autowired
	private SysRoleMenuService sysRoleMenuService;
	
	
//	public List<SysMenuEntity> queryListParentId(Long parentId, List<Long> menuIdList) {
//		List<SysMenuEntity> menuList = sysMenuRepository.queryListParentId(parentId);
//		if(menuIdList == null){
//			return menuList;
//		}
//
//		List<SysMenuEntity> userMenuList = new ArrayList<>();
//		for(SysMenuEntity menu : menuList){
//			if(menuIdList.contains(menu.getMenuId())){
//				userMenuList.add(menu);
//			}
//		}
//		return userMenuList;
//	}
//
//	public List<SysMenuEntity> queryNotButtonList() {
//		return sysMenuRepository.queryNotButtonList();
//	}
//
//	public List<SysMenuEntity> getUserMenuList(Long userId) {
//		//系统管理员，拥有最高权限
//		if(userId == 1){
//			return getAllMenuList(null);
//		}
//
//		//用户菜单列表
//		List<Long> menuIdList = sysUserService.queryAllMenuId(userId);
//		return getAllMenuList(menuIdList);
//	}
//
//	public SysMenuEntity queryObject(Long menuId) {
//		return sysMenuRepository.queryObject(menuId);
//	}
//
	public List<SysMenuEntity> queryList(Map<String, Object> map) {
		//TODO
		return sysMenuRepository.findAll((root, criteriaQuery, criteriaBuilder) -> {
			return null;
		});
	}
//
//	public int queryTotal(Map<String, Object> map) {
//		return sysMenuRepository.queryTotal(map);
//	}
//
//	public void save(SysMenuEntity menu) {
//		sysMenuRepository.save(menu);
//	}
//
//	public void update(SysMenuEntity menu) {
//		sysMenuRepository.update(menu);
//	}
//
//	@Transactional
//	public void deleteBatch(Long[] menuIds) {
//		sysMenuRepository.deleteBatch(menuIds);
//	}
//
//	/**
//	 * 获取所有菜单列表
//	 */
//	private List<SysMenuEntity> getAllMenuList(List<Long> menuIdList){
//		//查询根菜单列表
//		List<SysMenuEntity> menuList = queryListParentId(0L, menuIdList);
//		//递归获取子菜单
//		getMenuTreeList(menuList, menuIdList);
//
//		return menuList;
//	}
//
//	/**
//	 * 递归
//	 */
//	private List<SysMenuEntity> getMenuTreeList(List<SysMenuEntity> menuList, List<Long> menuIdList){
//		List<SysMenuEntity> subMenuList = new ArrayList<SysMenuEntity>();
//
//		for(SysMenuEntity entity : menuList){
//			if(entity.getType() == MenuType.CATALOG.getValue()){//目录
//				entity.setList(getMenuTreeList(queryListParentId(entity.getMenuId(), menuIdList), menuIdList));
//			}
//			subMenuList.add(entity);
//		}
//
//		return subMenuList;
//	}
}
